"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/24 14:15
@Description :  集合容器
数据存储的特点
  集合（set）是一个无序的不重复元素序列
定义:
   {元素,元素}
"""
# 集合定义
num_set = {1, 2, 3, 20, 15, 80, 45, 1}
empty_set = set()  # {} 定义的是空字典  不能使用{}定义空集合
print(num_set, type(num_set))  # set
print(empty_set, type(empty_set))

#  不能通过索引访问集合中的元素
#  print(num_set[0])  TypeError: 'set' object is not subscriptable

# 遍历集合   集合是可迭代元素
for num in num_set:
    print(num)

print('>>>>>>>>>>>>>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<')
# 集合的操作
print('len:', len(num_set))
print('max:', max(num_set))
print('min:', min(num_set))

# 集合的api
num_set.add(200)
num_set.add(100)
print(num_set)

# 一次添加多个数据到集合
# num_set.update(30,40,70)  #  TypeError: 'int' object is not iterable
# num_set.update('a','b','c')
num_set.update([1, 2, 3], (4, 5, 6), {21, 22, 23})
print(num_set)

# 删除数据
del_item = num_set.pop()
print(del_item)
print(num_set)

#  remove()  删除的元素必须存在  不存在抛出错误信息
# num_set.remove(500)
# print(num_set)

#  discard()  删除的元素不存在 不会有异常信息
num_set.discard(600)
print(num_set)

set1 = {1, 2, 3, 4}
set2 = {3, 4, 5, 6}
# 差集
print(set1.difference(set2))

# 交集
print(set1.intersection(set2))

# 合集
print(set1.union(set2))
